Welcome |
This API allows developers to create, update, and inquire about issues in RMTrack. The core access method is based on REST concepts, such that the API consists of web pages that respond to requests. For example to get the detailed information about an existing issue a developer makes a request to the following url: http://myserver.com/RMT/RMTrackAPI/IssueDetails.ashx?IssueId=17
Note that issuing the underlying HTTP request is complicated by authentication requirements.
The core access mechanism of the API is HTTP. A client simply makes an HTTP request of the appropriate resource and parses the returned XML.
A sample .NET client is provided. The RMTrackApiClient namespace provides a simple implementation to make requests of the REST API. This client should be suitable for most needs, but in certain circumstances it may be necessary to issue HTTP requests directly against the REST API.
The .NET client is easy to use:
RMTrackService RMTrack = new RMTrackService("http://localhost/RMT/RMTrackApi", "AccessKey", "SecretKey"); string NewIssueXml = "<?xml version=\"1.0\" encoding=\"utf-8\" ?>" + "<IssueCreate>" + " <Fields>" + " <ProjectId>24</ProjectId>" + " <ResolutionCode>New</ResolutionCode>" + " <StatusCode>Openish</StatusCode>" + " <AssignedToUserId>jqa</AssignedToUserId>" + " <Summary>A new problem</Summary>" + " </Fields>" + "</IssueCreate>"; string ResponseXml = RMTrack.IssueDetailsPost(NewIssueXml);
Note: The "AccessKey" and "SecretKey" values can be found on the API Access Site Option page in RMTrack.
The available fields for an issue includes not only the fields defined in the application (Administration->Customize->IssueFields) but also the following internal fields:
Field Name | Description |
---|---|
IssueId | The issue's id field |
IssueNumber | The issue's id within its project (only available when the Site Option Issue Numbering is set to per project) |
ProjectId | The issue's project id field |
ResolutionCode | The issue's resolution code |
StatusCode | The issue's status code |
AssignedToUserId | The user id the issue is currently assigned to |
CreatedByUserId | The user id that created the issue |
DateTimeOpened | The date and time the issue most recently transitioned to a resolution state with a StatusCode of Opened. |
DateOpened | The date the issue most recently transitioned to a resolution state with a StatusCode of Opened (the time component is 00:00:00). |
DateTimeClosed | The date and time the issue most recently transitioned to a resolution state with a StatusCode of Closed. |
DateClosed | The date the issue most recently transitioned to a resolution state with a StatusCode of Closed (the time component is 00:00:00). |
DateTimeLastUpdated | The date and time the issue was last updated. |
DateLastUpdated | The date the issue last updated (the time component is 00:00:00). |
Fixed | Flag whether the issue is considered "fixed". This is determined by the issue's resolution state and the workflow associated with the issue's project |
Valid | Flag whether the issue is considered "valid". This is determined by the issue's resolution state and the workflow associated with the issue's project |
CreatedByUserId | The user id that created the issue |
CreatedByUserId | The user id that created the issue |
CreatedByUserId | The user id that created the issue |
Date and time fields are always returned as UTC values and must be submitted as UTC values.
JSON formatting of responses, and requests, is supported by adding a "&Format=json" query string parameter.
Dates and date and time fields are returned as strings formatted as ISO 8601 date format (e.g. "2008-04-12T12:53Z").
A sample .NET client is provided. The RMTrackApiClient namespace provides a simple implementation to make requests of the REST API. This client should be suitable for most needs, but in certain circumstances it may be necessary to issue HTTP requests directly against the REST API.
The RMTrackApiClient has been built with COM interop enabled, so COM clients can access the same client API as .NET languages.
The progid is "RMTrackApiClient.RMTrackService", and to create an instance you can:
dim RMTrackService dim NewIssueXml dim ResponseXml set RMTrackService = CreateObject("RMTrackApiClient.RMTrackService") RMTrackService.Initialize "http://localhost/RMT/RMTrackApi", "access_key", "secret_key" NewIssueXml = _ "<?xml version=""1.0"" encoding=""utf-8"" ?>" + _ "<IssueCreate>" + _ " <Fields>" + _ " <ProjectId>24</ProjectId>" + _ " <ResolutionCode>New</ResolutionCode>" + _ " <StatusCode>Openish</StatusCode>" + _ " <AssignedToUserId>jqa</AssignedToUserId>" + _ " <Summary>A new problem</Summary>" + _ " </Fields>" + _ "</IssueCreate>" ResponseXml = RMTrackService.IssueDetailsPost(NewIssueXml, False)